package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 课程对象 courses
 * 
 * @author ruoyi
 * @date 2025-09-25
 */
public class Courses extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 课程ID */
    private Long courseId;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseName;

    /** 课程代码 */
    @Excel(name = "课程代码")
    private String courseCode;

    /** 学分 */
    @Excel(name = "学分")
    private BigDecimal credits;

    /** 年级 */
    @Excel(name = "年级")
    private String gradeLevel;

    /** 学期 */
    @Excel(name = "学期")
    private String semester;

    /** 创建人ID */
    private Long creatorId;

    /** 教学包 */
    private String teachingPackage;

    /** 审核状态 */
    private String auditStatus;

    /** 课程描述 */
    @Excel(name = "课程描述")
    private String description;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    private Date updatedAt;

    /** 所属专业 */
    @Excel(name = "所属专业")
    private String major;

    public void setCourseId(Long courseId) 
    {
        this.courseId = courseId;
    }

    public Long getCourseId() 
    {
        return courseId;
    }

    public void setCourseName(String courseName) 
    {
        this.courseName = courseName;
    }

    public String getCourseName() 
    {
        return courseName;
    }

    public void setCourseCode(String courseCode) 
    {
        this.courseCode = courseCode;
    }

    public String getCourseCode() 
    {
        return courseCode;
    }

    public void setCredits(BigDecimal credits) 
    {
        this.credits = credits;
    }

    public BigDecimal getCredits() 
    {
        return credits;
    }

    public void setGradeLevel(String gradeLevel) 
    {
        this.gradeLevel = gradeLevel;
    }

    public String getGradeLevel() 
    {
        return gradeLevel;
    }

    public void setSemester(String semester) 
    {
        this.semester = semester;
    }

    public String getSemester() 
    {
        return semester;
    }

    public void setCreatorId(Long creatorId) 
    {
        this.creatorId = creatorId;
    }

    public Long getCreatorId() 
    {
        return creatorId;
    }

    public void setTeachingPackage(String teachingPackage) 
    {
        this.teachingPackage = teachingPackage;
    }

    public String getTeachingPackage() 
    {
        return teachingPackage;
    }

    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("courseId", getCourseId())
            .append("courseName", getCourseName())
            .append("courseCode", getCourseCode())
            .append("credits", getCredits())
            .append("gradeLevel", getGradeLevel())
            .append("semester", getSemester())
            .append("creatorId", getCreatorId())
            .append("teachingPackage", getTeachingPackage())
            .append("auditStatus", getAuditStatus())
            .append("description", getDescription())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("major", getMajor())
            .toString();
    }
}
